import io
import torchvision
import onnxruntime
from PIL import Image
import numpy as np
from flask import Flask, render_template, request

app = Flask(__name__)


class Server(object):
    def __init__(self):
        self.graph_path = 'common.onnx'
        self.ort_session = onnxruntime.InferenceSession(self.graph_path)
        self.charset = ["", "宗", "认", "岚", "笋", "默", "儡", "廷", "宛", "钗", "左", "㧎", "珐", "撬",
    "绅", "驷", "固", "椭", "验", "掰", "凹", "驭", "酔", "瓴", "笕", "慒", "媳", "诘", "芍", "旒",
    "蚂", "斡", "峣", "框", "龄", "珠", "郁", "茆", "投", "极", "今", "蘊", "贻", "旧", "螃", "鎌",
    "偻", "饫", "俸", "滦", "搎", "诅", "绢", "痘", "枯", "穹", "鲵", "紫", "悚", "琶", "梓", "箐",
    "土", "赅", "劝", "喝", "摈", "盼", "钞", "莳", "蛹", "锨", "民", "磷", "瓤", "趟", "洼", "赚",
    "粹", "铡", "孽", "漉", "犯", "限", "钩", "诉", "雏", "汉", "尾", "酶", "谨", "巅", "数", "鹪",
    "摆", "捧", "欣", "雅", "们", "抢", "喟", "谆", "史", "静", "刖", "匝", "扭", "抖", "戚", "瓣",
    "臀", "奔", "泺", "瞌", "胱", "山", "瑞", "疏", "栲", "掷", "荸", "饮", "溷", "摇", "啡", "偃",
    "枇", "县", "触", "阂", "鞋", "叔", "粕", "丸", "午", "蹋", "監", "泅", "寿", "禁", "遑", "颗",
    "最", "问", "该", "输", "崔", "榮", "磨", "栖", "罗", "卦", "捒", "塔", "拽", "争", "佪", "谛",
    "浼", "6", "劳", "呀", "麇", "据", "端", "丁", "贫", "庛", "朓", "咒", "蹿", "矶", "缁", "弋",
    "落", "碴", "琢", "敬", "予", "晩", "胼", "专", "伴", "衣", "莨", "廉", "颦", "句", "坉", "旬",
    "摛", "榟", "捏", "塌", "岽", "镒", "暗", "眆", "破", "匙", "荧", "個", "椿", "苦", "界", "窕",
    "痼", "船", "殒", "偏", "莓", "朵", "a", "率", "脉", "犁", "師", "齑", "液", "鸯", "妳", "介",
    "李", "猛", "枕", "奎", "撇", "撒", "后", "办", "妄", "样", "郊", "珀", "啉", "韬", "蕲", "浓",
    "郞", "纭", "搪", "涓", "倌", "误", "贿", "洪", "纱", "扞", "舔", "微", "槐", "滥", "瑟", "揖",
    "绞", "峰", "瘗", "屉", "柜", "双", "泓", "罢", "茸", "吹", "诫", "狮", "仍", "未", "沛", "睡",
    "漕", "及", "冀", "吴", "伎", "痊", "瑶", "邢", "瑯", "丑", "铺", "巿", "抑", "喧", "咤", "站",
    "骥", "隳", "蛾", "捞", "拊", "褥", "坟", "翰", "肱", "信", "藜", "瘢", "引", "诛", "跤", "趄",
    "仂", "靶", "韩", "利", "嘎", "粢", "叵", "暴", "施", "摩", "梵", "榷", "琎", "诼", "涌", "計",
    "逡", "蕤", "剽", "肈", "纽", "雳", "混", "磅", "浑", "嫠", "啥", "迩", "乜", "灵", "给", "峦",
    "蔬", "谢", "瞧", "红", "勾", "畅", "鹃", "迂", "谬", "陟", "梯", "榚", "麋", "踏", "画", "貌",
    "厘", "婴", "切", "速", "赶", "沓", "巳", "㾄", "断", "三", "计", "垫", "獐", "刷", "舷", "醤",
    "掩", "琊", "陆", "斩", "亲", "扎", "灭", "虞", "耪", "僭", "犹", "乡", "了", "衾", "炎", "酌",
    "垄", "辞", "搏", "哎", "畲", "甘", "蕙", "优", "搜", "央", "跖", "做", "幕", "歙", "肺", "催",
    "芜", "棚", "撼", "谍", "拙", "昊", "暖", "妖", "蟑", "卲", "稍", "伪", "挎", "昃", "嘴", "淘",
    "郄", "驾", "酸", "锌", "蝗", "七", "叁", "叨", "精", "毋", "渠", "凤", "杲", "圈", "踢", "l",
    "虢", "秽", "鹜", "篱", "丰", "舉", "稁", "欢", "查", "骐", "糌", "血", "捶", "慌", "汪", "疾",
    "肢", "躺", "巍", "缎", "佼", "仗", "胞", "亟", "归", "庇", "玖", "考", "几", "娟", "杻", "霸",
    "董", "荻", "心", "呃", "筲", "匡", "埏", "臭", "攀", "羸", "瀑", "钓", "铗", "刚", "讳", "罕",
    "赈", "虹", "褂", "含", "雍", "蓍", "聒", "陈", "烷", "里", "呢", "娇", "俟", "洲", "普", "磐",
    "徊", "盎", "地", "溶", "绠", "陌", "忱", "璱", "猊", "枓", "婊", "走", "清", "刁", "蒲", "兹",
    "鳅", "赡", "筹", "竺", "拧", "夷", "响", "京", "轻", "焦", "帔", "毫", "惦", "颍", "砻", "沟",
    "弭", "兵", "释", "俦", "柏", "筱", "讵", "贯", "宣", "撅", "系", "阒", "臺", "徼", "蛛", "伫",
    "虬", "晁", "熵", "耨", "鳇", "赛", "戳", "罘", "应", "宽", "阜", "讲", "嶂", "挤", "渴", "篁",
    "娆", "镝", "文", "崩", "苘", "歃", "栽", "坏", "筌", "膑", "携", "伽", "椒", "交", "荔", "座",
    "堕", "老", "蘸", "签", "棹", "蠲", "曙", "畔", "您", "紊", "怡", "哨", "斌", "蝇", "廋", "偿",
    "厮", "宙", "遂", "瘫", "耘", "均", "墙", "芪", "悭", "偈", "乙", "y", "抵", "益", "岔", "淌",
    "阙", "鲥", "迟", "噱", "嗟", "椱", "喱", "號", "稽", "忡", "皇", "战", "围", "哇", "蚍", "懿",
    "任", "岁", "帜", "藓", "敢", "申", "蒙", "袄", "琵", "兄", "邪", "顿", "佞", "艮", "牧", "旇",
    "秒", "瞑", "材", "卓", "蚕", "泥", "纳", "寤", "燫", "视", "玫", "硗", "酣", "酯", "巩", "惨",
    "溋", "岑", "唅", "灾", "馍", "帏", "恃", "芹", "新", "？", "睹", "凌", "倏", "潢", "读", "百",
    "侔", "便", "懈", "圳", "祈", "钟", "剞", "補", "肓", "駡", "佑", "脱", "涡", "馘", "挖", "烜",
    "撑", "璃", "悌", "離", "嵬", "谥", "蠊", "郢", "腧", "鼎", "衫", "見", "巾", "晦", "礼", "继",
    "椰", "尬", "翠", "踟", "在", "悔", "箩", "娈", "君", "淇", "镜", "俭", "掠", "鸾", "倥", "潸",
    "遯", "懲", "对", "蝙", "越", "惮", "坤", "谝", "碉", "镊", "灼", "拎", "铎", "恺", "吗", "艘",
    "碳", "千", "诋", "斗", "篙", "糜", "确", "鞅", "玉", "鹌", "飞", "歁", "火", "堂", "照", "闯",
    "槎", "虎", "啐", "次", "衿", "布", "笑", "熠", "牡", "役", "才", "副", "酪", "嘏", "瘠", "换",
    "夭", "衙", "斐", "哺", "绣", "伶", "戌", "垣", "财", "嘘", "燮", "剔", "载", "丈", "退", "铴",
    "侮", "瘤", "杳", "吝", "拈", "溜", "禽", "澄", "鏠", "嬉", "蒸", "建", "甫", "佥", "倜", "腄",
    "烁", "韪", "佧", "廖", "䘵", "唑", "怨", "谗", "长", "犒", "羝", "砷", "濛", "戕", "饩", "踞",
    "鹘", "球", "圜", "二", "靳", "柔", "粑", "突", "陛", "暇", "哈", "庄", "稠", "勺", "婆", "茎",
    "妙", "螽", "躯", "廠", "振", "宫", "森", "妊", "醅", "爹", "连", "钴", "鑫", "溧", "葛", "延",
    "孰", "撙", "啱", "峪", "骧", "湾", "旗", "沣", "碎", "堅", "攘", "殂", "寐", "孪", "蔚", "形",
    "揆", "扃", "呸", "與", "奕", "智", "缆", "遗", "瑚", "粥", "涰", "顾", "螺", "燔", "阶", "链",
    "枥", "括", "斧", "挞", "尚", "锹", "产", "蝎", "樇", "盖", "隽", "艰", "荀", "希", "涣", "套",
    "埴", "鳕", "羞", "忐", "旨", "度", "挝", "共", "韫", "慰", "嚎", "萄", "腐", "匠", "蹭", "饽",
    "蔺", "橱", "乱", "蚜", "徂", "柱", "事", "0", "磺", "劭", "洗", "痈", "诠", "牢", "缷", "阳",
    "坢", "窿", "婥", "奚", "鵰", "语", "胰", "瀣", "恢", "坛", "贤", "炽", "尺", "屠", "寄", "辖",
    "鹞", "块", "寂", "獻", "味", "愆", "桅", "邂", "肚", "杼", "怎", "刹", "绒", "郫", "言", "揪",
    "遭", "嫉", "湘", "丹", "趾", "弗", "杮", "艴", "蓖", "眩", "将", "鼹", "闸", "饭", "姗", "难",
    "鉰", "冤", "享", "䧳", "擘", "忍", "移", "圆", "虔", "上", "识", "狍", "坐", "扩", "偕", "圧",
    "怒", "胝", "挫", "霍", "捕", "逛", "萼", "吏", "肉", "醒", "偎", "厂", "像", "例", "寰", "吩",
    "没", "追", "糅", "葺", "猕", "音", "截", "肩", "鲆", "租", "锯", "稷", "梆", "韶", "锭", "鼓",
    "备", "般", "裤", "蛎", "鹿", "蹑", "旷", "酞", "凉", "职", "丛", "操", "奧", "诮", "颓", "裸",
    "溪", "坞", "硝", "搐", "猎", "孵", "痰", "期", "聩", "沅", "绶", "权", "壳", "怆", "肠", "湧",
    "畀", "器", "曰", "倚", "梗", "浙", "焖", "体", "篇", "悍", "褐", "伥", "阖", "圭", "嶙", "戊",
    "旄", "情", "驻", "入", "蘭", "葵", "暑", "逅", "溘", "养", "鄣", "峯", "躇", "话", "伺", "胃",
    "屹", "窂", "剌", "准", "淬", "刻", "缪", "莴", "绘", "机", "绕", "鹅", "疟", "郐", "靥", "孙",
    "烂", "聊", "夼", "荼", "窍", "凄", "箕", "闷", "叹", "踌", "坦", "乳", "恬", "绳", "湮", "敛",
    "纸", "缸", "此", "咕", "何", "白", "幼", "澳", "拭", "芎", "结", "咋", "忾", "瓅", "掐", "腓",
    "悸", "娲", "暧", "蕨", "茼", "濠", "栏", "旱", "竽", "觞", "崇", "趴", "盡", "幻", "麻", "诵",
    "鹄", "浅", "瘦", "厩", "抨", "吮", "橛", "耗", "悴", "酚", "晷", "锺", "炉", "栋", "抛", "磁",
    "壕", "旖", "锑", "菠", "颼", "铂", "秋", "佛", "帙", "憨", "呋", "暄", "挨", "莽", "熄", "价",
    "蓟", "铭", "鳝", "骸", "陂", "虿", "可", "商", "哦", "阪", "蛟", "谴", "遨", "箫", "诤", "涅",
    "超", "奋", "木", "判", "炕", "兜", "吧", "惠", "耿", "回", "琦", "么", "纨", "逧", "哑", "婷",
    "坯", "觑", "姆", "鞥", "拦", "g", "贡", "袱", "霜", "5", "颜", "爻", "沁", "绛", "䄂", "奶",
    "槭", "笛", "函", "孱", "勋", "毖", "睚", "裴", "鲍", "祢", "绪", "矩", "碗", "或", "构", "栅",
    "谦", "遍", "担", "桴", "环", "铑", "扯", "髦", "丢", "泄", "啖", "箴", "挻", "矮", "扰", "罩",
    "沏", "鸫", "颇", "稼", "悯", "鬓", "璀", "泪", "汎", "芦", "雙", "铸", "锃", "刀", "矣", "西",
    "帼", "餮", "蘑", "埋", "瞬", "眄", "氖", "摒", "濞", "酃", "蜀", "涝", "枷", "缺", "盏", "庖",
    "橙", "相", "拇", "逸", "飙", "蚩", "麒", "愿", "碟", "畴", "爆", "炙", "窦", "拯", "骨", "襄",
    "符", "汕", "佗", "净", "镶", "皓", "恿", "抗", "曜", "轱", "葹", "曝", "媚", "获", "时", "纠",
    "洱", "疑", "荚", "拱", "蜗", "营", "聚", "浸", "翼", "哲", "辄", "金", "狎", "罿", "筋", "家",
    "棕", "昕", "奖", "驶", "梦", "留", "墩", "沤", "扔", "魅", "托", "湖", "韭", "酬", "空", "吻",
    "员", "仿", "爼", "寇", "缠", "承", "屦", "悼", "趣", "逋", "划", "牝", "黾", "古", "酗", "涮",
    "崞", "鸭", "罴", "滋", "背", "踊", "揠", "奇", "捻", "剖", "雇", "鹺", "凸", "兰", "汰", "浜",
    "镰", "酮", "窬", "惶", "苹", "橦", "澈", "仝", "庡", "胳", "彘", "澹", "鲋", "喇", "骰", "鹉",
    "樣", "彝", "颅", "氯", "嵇", "乖", "淤", "洇", "曈", "漏", "编", "劫", "豪", "禄", "孝", "绮",
    "媸", "舞", "牍", "班", "誓", "誊", "粜", "源", "槍", "螫", "療", "熰", "裳", "咀", "贰", "帐",
    "溉", "暝", "涧", "疥", "恻", "起", "齌", "哼", "乾", "动", "洒", "剥", "钙", "凖", "甄", "恶",
    "垂", "幅", "龇", "绵", "色", "盗", "檐", "檀", "蝴", "俗", "颡", "糙", "宪", "脖", "蜃", "捷",
    "丽", "余", "闺", "诰", "沭", "龉", "点", "松", "程", "饥", "饺", "紧", "裕", "遮", "宸", "豇",
    "霏", "贬", "迥", "帽", "霞", "楹", "淡", "鋼", "憔", "虏", "铁", "禀", "冶", "蜒", "渡", "甲",
    "據", "蛇", "拓", "互", "楂", "措", "踅", "亮", "琳", "呐", "嘉", "穂", "旅", "竞", "讨", "半",
    "硫", "捭", "肘", "舵", "匆", "抿", "冒", "釜", "盅", "朴", "诃", "庚", "沮", "盤", "眶", "鲩",
    "泌", "示", "倔", "莲", "麿", "i", "俪", "肿", "揩", "涂", "嗔", "九", "翻", "薨", "谷", "趑",
    "痢", "贩", "银", "姑", "口", "斑", "鹭", "桌", "芙", "浃", "溅", "痭", "阮", "脏", "稂", "拒",
    "骗", "阀", "筷", "杞", "芸", "杰", "珍", "瘸", "靠", "沔", "帷", "与", "举", "楸", "狼", "啊",
    "警", "徵", "猥", "擂", "吕", "淖", "恙", "缛", "汤", "栳", "捋", "嵕", "眦", "弃", "牛", "付",
    "毕", "鳞", "娉", "她", "缘", "锂", "=", "美", "另", "封", "早", "兔", "弛", "织", "屎", "焰",
    "鸣", "脍", "蛋", "窟", "從", "传", "薷", "要", "瞅", "邺", "逾", "诞", "蒂", "咎", "尸", "倘",
    "汔", "毒", "勢", "驳", "桓", "蓄", "疵", "崧", "敵", "氧", "腋", "妍", "狞", "缇", "缤", "犬",
    "戎", "沌", "膨", "蚤", "菜", "禹", "孥", "鲶", "徭", "嘅", "弊", "狷", "恋", "薏", "敞", "陕",
    "榭", "綉", "柁", "水", "剜", "崭", "澌", "挂", "式", "歇", "透", "竿", "钦", "须", "酾", "氦",
    "是", "安", "茬", "耆", "锲", "憋", "腻", "杆", "澧", "毡", "莒", "羌", "华", "雌", "省", "译",
    "檄", "戒", "逃", "瞎", "槃", "嘻", "陬", "择", "坑", "衬", "荦", "嵘", "乃", "挽", "丝", "龙",
    "镫", "坊", "合", "掖", "馅", "苒", "怛", "潍", "栓", "m", "卡", "茇", "选", "鄂", "社", "煞",
    "s", "棣", "亭", "腩", "峙", "厥", "掀", "爵", "馆", "膝", "随", "镨", "潼", "奢", "揾", "枚",
    "瑰", "屐", "尻", "只", "潦", "脂", "脯", "嵩", "卉", "壬", "钿", "唁", "祘", "哥", "旌", "契",
    "婉", "鯭", "喙", "谚", "渔", "测", "亡", "茹", "庆", "薄", "氮", "痪", "抉", "炫", "兽", "厢",
    "袜", "淆", "蝟", "悺", "帧", "葬", "栉", "版", "不", "每", "搔", "冬", "厚", "媲", "膘", "衅",
    "瑾", "芫", "適", "简", "渺", "挛", "蔼", "苕", "唏", "值", "把", "跺", "嫌", "槟", "讹", "指",
    "啦", "辙", "郑", "醋", "聿", "饿", "昭", "儋", "牌", "n", "盹", "赫", "狒", "淀", "邻", "址",
    "距", "蓅", "遥", "尼", "幌", "罱", "睬", "菇", "全", "冠", "揍", "慕", "悬", "疹", "禇", "耒",
    "笆", "跪", "篮", "槽", "寒", "佴", "疮", "父", "剃", "焕", "漩", "姬", "掇", "东", "夫", "柝",
    "受", "装", "江", "漾", "犾", "侥", "拘", "院", "还", "臧", "漓", "粗", "包", "车", "氰", "孑",
    "渝", "迁", "段", "炔", "態", "熣", "蚁", "忠", "爬", "迭", "逝", "橘", "崴", "铿", "痋", "池",
    "祝", "大", "域", "鲷", "影", "龚", "录", "缉", "糖", "歼", "堞", "孟", "壹", "虫", "槿", "汀",
    "蹇", "羔", "某", "糗", "毛", "谒", "潘", "腰", "拍", "擐", "倕", "魁", "常", "蟹", "业", "溥",
    "章", "失", "滤", "冲", "荫", "掌", "抄", "访", "困", "耍", "很", "房", "妻", "槁", "乐", "饼",
    "檬", "脑", "绍", "掘", "洵", "稇", "维", "锈", "復", "欲", "曼", "堤", "叼", "冈", "衔", "彀",
    "从", "鐵", "夙", "城", "门", "稔", "笠", "愧", "捎", "遽", "磔", "勿", "则", "降", "伊", "啧",
    "蕉", "公", "子", "钨", "岸", "放", "鐀", "惜", "胯", "隘", "诣", "黎", "霉", "哒", "耻", "溃",
    "存", "丫", "肐", "慧", "墓", "街", "瑕", "债", "念", "旚", "闫", "赁", "蚊", "冗", "醊", "彬",
    "胚", "悟", "亳", "仄", "舱", "莉", "络", "魑", "給", "僵", "庞", "蠡", "梁", "遐", "经", "咏",
    "缔", "犊", "聢", "對", "彷", "渤", "辩", "弥", "瞻", "詹", "纹", "膀", "酱", "熳", "阡", "缮",
    "朗", "喆", "足", "撷", "菲", "沽", "瓜", "牟", "沾", "厅", "蛀", "掳", "飨", "愠", "祗", "豸",
    "赞", "诎", "自", "朱", "等", "颐", "纫", "圏", "荡", "畜", "烘", "輸", "鉵", "蛮", "分", "袭",
    "前", "蛊", "揣", "忻", "券", "泛", "诲", "跣", "夹", "渌", "抚", "苄", "傫", "迈", "占", "比",
    "兀", "款", "审", "多", "壮", "桡", "羮", "小", "苯", "腿", "瓷", "贝", "妈", "甚", "陑", "嘲",
    "呕", "学", "螓", "右", "樊", "佻", "轾", "屋", "漳", "剩", "鲺", "扼", "销", "瘟", "拨", "舄",
    "僜", "染", "骊", "義", "费", "号", "鸡", "滑", "徘", "牴", "涯", "垮", "坳", "吟", "咯", "痹",
    "粽", "涟", "聘", "癍", "猝", "厄", "际", "琐", "雀", "劈", "誜", "迷", "萤", "威", "怵", "颠",
    "彥", "箸", "韦", "辉", "笃", "收", "患", "至", "撴", "闱", "跋", "涛", "祸", "脊", "循", "阚",
    "凫", "豌", "伟", "殖", "驮", "鞯", "葫", "癣", "砖", "坍", "康", "怂", "箭", "孛", "总", "4",
    "倾", "喀", "陪", "轰", "兆", "鹤", "榔", "薰", "裨", "魔", "愈", "祛", "刑", "星", "晏", "擤",
    "单", "押", "阋", "椅", "硈", "坠", "胄", "厍", "唆", "登", "熘", "板", "涩", "匕", "蓉", "屁",
    "葩", "烽", "湎", "偌", "谏", "项", "得", "鞍", "层", "卤", "筑", "3", "闹", "殷", "激", "呤",
    "腺", "蹊", "辔", "焜", "履", "羟", "吇", "醜", "茡", "貂", "砥", "途", "件", "淩", "珧", "崖",
    "哗", "怼", "筛", "晴", "秸", "支", "砭", "碍", "翕", "找", "橇", "粝", "寥", "惗", "柴", "藕",
    "摘", "狡", "蜕", "逮", "巧", "祖", "杶", "涉", "j", "伦", "洯", "赉", "技", "团", "钝", "怿",
    "鱼", "敦", "燥", "监", "碱", "刃", "会", "妇", "义", "愤", "压", "豆", "捩", "法", "诊", "招",
    "睐", "矸", "榕", "逍", "浪", "锥", "堑", "蟠", "悛", "寅", "检", "徨", "啬", "扳", "跫", "嘿",
    "稣", "繇", "菽", "日", "霁", "刎", "疫", "麦", "闌", "摉", "怀", "兑", "榫", "果", "桺", "烀",
    "升", "芒", "旁", "甑", "网", "眯", "辊", "1", "憬", "柠", "劬", "惭", "栗", "卒", "吉", "持",
    "饧", "佳", "僚", "笫", "聋", "冯", "滨", "彪", "棓", "剪", "樵", "郭", "殃", "神", "绁", "胶",
    "阅", "购", "聲", "杵", "棍", "壑", "稳", "猖", "踪", "竹", "拴", "瘩", "波", "氨", "铤", "置",
    "掮", "靓", "娜", "蠢", "孔", "咨", "植", "姥", "锄", "差", "儆", "斟", "鼑", "峨", "蚶", "惋",
    "囫", "雎", "趋", "瓠", "具", "撮", "男", "昵", "糊", "跻", "廛", "穿", "晤", "顽", "旋", "稿",
    "岱", "樨", "爷", "增", "淮", "闰", "硼", "励", "臾", "族", "沿", "邑", "嗽", "叭", "努", "驽",
    "昱", "藤", "莼", "隶", "峡", "灶", "严", "妁", "硷", "帆", "曚", "衹", "蔷", "坷", "钊", "靡",
    "阗", "譬", "出", "眷", "赋", "密", "概", "宦", "朕", "援", "濋", "架", "垒", "纂", "感", "设",
    "字", "第", "殁", "傥", "拣", "慈", "克", "谇", "旭", "巡", "藉", "邃", "簇", "辕", "烯", "蚌",
    "拐", "淞", "耋", "靴", "繁", "氏", "翅", "刍", "矾", "吸", "溝", "嘃", "革", "解", "坂", "线",
    "皲", "用", "鸢", "缄", "犀", "猜", "骼", "吠", "糍", "少", "馈", "胸", "拥", "凭", "奸", "鉴",
    "魍", "埠", "酉", "蔑", "灌", "晥", "诈", "扥", "噩", "铒", "喑", "拢", "柆", "缕", "耶", "锱",
    "堪", "黻", "翥", "餪", "诹", "恨", "腮", "琅", "镍", "芤", "堆", "轼", "望", "由", "区", "呆",
    "遆", "邒", "秦", "嗤", "横", "篪", "咽", "卫", "俄", "非", "主", "穰", "茯", "焚", "焙", "映",
    "致", "脆", "妾", "黍", "荏", "浩", "夺", "奠", "授", "书", "苟", "歪", "蹰", "积", "馨", "屑",
    "咻", "朔", "领", "牞", "抒", "需", "×", "掬", "咂", "飘", "碓", "萎", "母", "滩", "蠹", "睃",
    "摞", "递", "搴", "迄", "忲", "胡", "吨", "皿", "馀", "匐", "漆", "喘", "踽", "璋", "蝼", "栀",
    "狩", "黧", "榜", "媒", "批", "慷", "刽", "殊", "陋", "饲", "镐", "蹙", "璟", "鳘", "列", "帛",
    "茂", "帝", "圮", "戍", "鲳", "鸠", "膻", "翦", "粘", "桂", "素", "略", "工", "傻", "泯", "嗜",
    "亘", "证", "尝", "翁", "糠", "四", "友", "避", "蒿", "砗", "串", "烛", "赦", "篡", "道", "锋",
    "绿", "锻", "圠", "馐", "和", "怄", "胫", "掊", "墉", "它", "v", "谣", "埃", "曳", "劢", "痴",
    "服", "渗", "萁", "凛", "飓", "毅", "廐", "沫", "玻", "声", "癸", "缰", "孳", "擞", "惟", "侗",
    "擦", "炊", "柰", "宋", "戴", "牦", "户", "儿", "辂", "馒", "死", "耳", "衢", "灿", "岿", "芏",
    "h", "虮", "卵", "忘", "嫣", "梅", "敕", "浇", "汗", "佩", "揎", "绝", "僳", "窘", "牀", "癫",
    "洁", "颂", "墟", "蜊", "菱", "佃", "赵", "羯", "娱", "私", "蟞", "谑", "淋", "医", "虽", "莘",
    "芯", "瞓", "蟾", "榛", "久", "乕", "川", "橐", "女", "挺", "份", "琥", "筝", "否", "弹", "恤",
    "狄", "肴", "帖", "逆", "籍", "浦", "薮", "涤", "额", "礁", "石", "凶", "诱", "晃", "鲸", "匏",
    "喷", "推", "锤", "釆", "楚", "过", "郝", "茅", "挢", "慎", "昧", "唬", "昆", "篷", "撤", "泵",
    "娶", "弍", "仇", "窈", "筒", "晾", "豕", "敲", "壶", "峋", "膈", "勘", "罔", "卣", "唳", "澎",
    "铃", "删", "盆", "杨", "盈", "疡", "睦", "糁", "料", "啼", "厦", "屡", "辇", "插", "沪", "酥",
    "敷", "腌", "忌", "督", "悱", "剧", "螟", "鞘", "苞", "良", "险", "惕", "帚", "饶", "枳", "缩",
    "赠", "庐", "莜", "疙", "矗", "休", "鲢", "嗒", "碣", "縻", "根", "躬", "钜", "噬", "负", "氐",
    "内", "堡", "汇", "裂", "姚", "煌", "躁", "瀦", "穷", "肥", "苓", "潭", "棉", "绰", "辰", "汹",
    "捆", "镣", "迹", "俱", "赓", "刊", "蜘", "钎", "斛", "粱", "曺", "吐", "眈", "辏", "贳", "瞽",
    "髙", "诌", "务", "糕", "攫", "澡", "豺", "理", "毙", "茭", "蛣", "尔", "矛", "螳", "泸", "迫",
    "椹", "睁", "綮", "淫", "伷", "隐", "蔯", "懦", "荷", "舌", "坼", "化", "楞", "柿", "凳", "辱",
    "砰", "锚", "啄", "叛", "槌", "龋", "摊", "馼", "筫", "卧", "肝", "轸", "垩", "揉", "诽", "砂",
    "羲", "叟", "憯", "8", "若", "雁", "煊", "涪", "骛", "愎", "猫", "俏", "诶", "郧", "殆", "够",
    "乍", "谄", "酊", "嫰", "册", "复", "慵", "南", "傍", "蒹", "挪", "丙", "掂", "况", "骚", "孢",
    "饯", "猪", "腾", "轿", "绊", "穴", "疖", "头", "臂", "永", "枫", "枝", "搭", "絮", "哀", "孫",
    "嗈", "企", "诏", "胆", "舊", "曾", "溯", "宏", "征", "莹", "谳", "饨", "关", "镌", "哮", "六",
    "c", "鳃", "到", "青", "察", "鲞", "饱", "屈", "晕", "预", "倍", "淑", "骑", "咡", "鹎", "肛",
    "附", "愁", "粉", "促", "伸", "烧", "桃", "誉", "碾", "仲", "峻", "势", "镇", "栟", "宾", "臬",
    "梱", "鳜", "斤", "瓦", "馕", "祀", "笥", "酋", "草", "嚏", "其", "排", "恒", "榱", "剑", "拆",
    "塑", "雩", "荒", "赣", "政", "雄", "糸", "态", "吓", "补", "睾", "令", "疯", "棵", "槛", "況",
    "蟆", "耙", "尤", "婪", "亊", "仆", "邓", "即", "下", "胁", "英", "痞", "缟", "厉", "喂", "炮",
    "臣", "苩", "壁", "僧", "症", "膊", "呼", "苛", "图", "孩", "潮", "雪", "廿", "髭", "亓", "戛",
    "教", "面", "顼", "萏", "创", "炸", "戮", "訓", "福", "拔", "蝶", "萱", "汁", "颔", "渎", "寺",
    "群", "镀", "蹲", "b", "赏", "柚", "塞", "缣", "拟", "荛", "蛤", "蕾", "煨", "世", "袒", "窑",
    "彻", "踣", "茶", "褪", "髯", "绑", "丐", "能", "選", "幄", "狸", "侍", "冁", "湍", "吼", "鸩",
    "见", "戢", "鹦", "菊", "湔", "账", "鏾", "诿", "抟", "熙", "码", "9", "陇", "评", "薯", "稻",
    "展", "栈", "庵", "闪", "糨", "猩", "虾", "呛", "晒", "殄", "叠", "当", "五", "周", "隙", "韧",
    "袂", "殚", "赘", "钣", "皱", "矫", "临", "隔", "蜉", "官", "餍", "仔", "意", "低", "惰", "瞈",
    "阐", "荜", "谩", "储", "贵", "睫", "鼗", "陵", "乔", "故", "屣", "打", "洽", "芽", "厨", "羁",
    "d", "兠", "萧", "挑", "惯", "砚", "善", "洋", "旮", "俚", "吾", "妆", "拼", "宁", "侩", "葑",
    "谅", "渭", "伯", "怜", "趼", "跨", "鼾", "墨", "昌", "葚", "独", "芬", "弱", "索", "蔁", "砣",
    "士", "览", "哆", "扇", "歘", "豹", "弟", "锦", "瑜", "资", "陡", "徹", "挠", "缭", "呵", "搂",
    "叉", "侵", "發", "徇", "运", "焼", "铵", "慨", "笺", "娠", "伉", "甜", "怯", "阱", "醇", "花",
    "俇", "脐", "岐", "幢", "犴", "既", "觅", "保", "去", "募", "纷", "懂", "弘", "赔", "辍", "雉",
    "毓", "锁", "匿", "肄", "疗", "离", "羰", "方", "湊", "园", "钫", "朰", "来", "肫", "厕", "蠕",
    "再", "雾", "姻", "烩", "物", "敖", "蝠", "簿", "湃", "那", "吁", "泐", "终", "琪", "尴", "斫",
    "玄", "滂", "楱", "肆", "菁", "7", "垢", "黼", "鲁", "绩", "宴", "惬", "芝", "却", "贱", "肾",
    "啟", "劣", "燎", "咫", "毗", "洛", "醉", "抹", "囊", "葙", "柙", "笸", "盘", "q", "旆", "播",
    "乌", "林", "赢", "浏", "供", "柑", "羼", "卷", "衍", "铀", "齐", "宠", "甩", "硒", "轨", "翱",
    "朐", "篝", "杖", "埂", "累", "妨", "萌", "聃", "漫", "晚", "间", "黏", "髀", "接", "編", "苏",
    "侏", "骁", "佚", "捍", "喳", "枭", "溢", "鬼", "诀", "詈", "甥", "耽", "凰", "谎", "胭", "菤",
    "驿", "两", "蓬", "泞", "猷", "披", "璎", "为", "狴", "讼", "舰", "药", "谘", "农", "肇", "侣",
    "鲐", "气", "佣", "怕", "蛸", "协", "堙", "裰", "枣", "恸", "竦", "矅", "梳", "嫁", "狗", "侨",
    "徉", "残", "蚬", "科", "骋", "饰", "婚", "成", "宵", "悖", "枉", "莫", "锡", "辆", "羿", "侓",
    "裔", "帮", "逵", "佯", "忽", "居", "咬", "柳", "铝", "兴", "觌", "矿", "吊", "诩", "羽", "冷",
    "狙", "馗", "辢", "颁", "岵", "溺", "噻", "庸", "虍", "藏", "嬗", "瘁", "万", "党", "飱", "噶",
    "漂", "扛", "恼", "琰", "贼", "始", "旰", "墒", "茕", "玩", "沲", "惧", "冕", "榄", "杜", "棘",
    "茄", "璨", "蛏", "泉", "啸", "肮", "论", "穆", "闵", "糟", "莺", "允", "俨", "露", "f", "舀",
    "r", "粟", "呜", "眺", "节", "麾", "蜜", "碘", "佬", "镢", "遇", "杭", "酵", "鄙", "夜", "骷",
    "镑", "泼", "彤", "捡", "秤", "都", "沼", "猾", "匹", "届", "洃", "联", "铪", "咖", "涔", "舶",
    "窃", "榴", "柄", "嵌", "秉", "鱿", "苑", "沱", "膜", "醮", "劓", "辅", "棋", "品", "坚", "绦",
    "滇", "脓", "搠", "谭", "鲜", "珥", "腕", "蛙", "显", "枞", "咙", "腼", "惇", "遵", "脾", "粮",
    "想", "缨", "惫", "辗", "醺", "钾", "灯", "麓", "斯", "隅", "尽", "誤", "鲮", "先", "试", "鹨",
    "卯", "烦", "瞒", "魂", "祭", "高", "遊", "併", "椽", "郸", "珅", "虚", "奄", "沉", "如", "岳",
    "刘", "济", "散", "瞳", "斋", "樯", "鹑", "廓", "张", "夏", "帘", "晡", "澜", "噎", "遏", "骖",
    "尊", "汞", "撕", "伏", "锸", "踱", "匪", "z", "摹", "惩", "州", "讓", "雲", "焊", "甭", "渚",
    "咐", "兼", "潜", "汳", "镪", "忆", "树", "攻", "弄", "龈", "亏", "陔", "祼", "北", "鎚", "碑",
    "濆", "p", "耐", "鲰", "货", "蕃", "觚", "艳", "驱", "呷", "岗", "葭", "丟", "贲", "侯", "饴",
    "赊", "因", "窒", "骜", "奂", "幺", "腴", "汲", "浚", "沐", "巴", "圾", "昂", "求", "侉", "摄",
    "祁", "贪", "肖", "税", "钱", "榈", "簸", "狂", "扉", "蘖", "茗", "宅", "垛", "加", "岭", "太",
    "愕", "汶", "馋", "历", "助", "磋", "圣", "胧", "瓶", "讷", "藐", "题", "滚", "咱", "荆", "浠",
    "酒", "氓", "勃", "拄", "芟", "涎", "伞", "腢", "佤", "樟", "纵", "蜚", "樘", "的", "蛔", "搬",
    "潇", "富", "怫", "岛", "者", "市", "栂", "剂", "陨", "俯", "序", "恩", "氛", "雨", "热", "殪",
    "窜", "拗", "苔", "废", "箪", "朽", "筏", "喉", "俾", "剁", "角", "拖", "褿", "抻", "赀", "诗",
    "泡", "罄", "迪", "啃", "聪", "鄒", "鼠", "壤", "攰", "杯", "挈", "朊", "峥", "仅", "钹", "配",
    "快", "杠", "袋", "底", "彩", "绷", "囱", "艾", "顶", "簪", "斥", "德", "坝", "奏", "雷", "忸",
    "熔", "黔", "这", "捐", "尿", "迦", "俘", "蒋", "减", "眸", "棠", "鸱", "铠", "鳗", "俊", "诳",
    "充", "讪", "窖", "炭", "钀", "钧", "讦", "艺", "献", "螂", "纣", "饔", "驯", "炼", "菖", "體",
    "蚝", "稗", "褫", "罚", "x", "寞", "撖", "碰", "嗓", "旦", "薜", "初", "袍", "朋", "纡", "搽",
    "辣", "铆", "描", "亢", "蹦", "捅", "鞫", "珊", "挟", "杀", "外", "腈", "隧", "應", "琨", "瓯",
    "橉", "景", "燃", "轮", "治", "驸", "豫", "但", "谜", "楫", "阍", "秃", "疆", "蹄", "潞", "電",
    "本", "眼", "嘭", "秣", "喔", "臻", "阆", "恰", "反", "局", "荞", "蜓", "膄", "髓", "刈", "沧",
    "炬", "仕", "妪", "逑", "砌", "易", "焅", "统", "召", "狈", "侃", "慢", "亰", "兢", "擅", "沖",
    "惆", "刨", "妥", "昙", "讶", "萦", "裎", "逼", "晋", "砧", "孤", "骓", "鸈", "埒", "桐", "广",
    "獭", "鸥", "滴", "忑", "懒", "苌", "崛", "樽", "翟", "拌", "虐", "末", "绨", "凑", "颈", "脚",
    "控", "蘼", "葜", "贾", "烤", "喻", "孚", "鲻", "泻", "眠", "一", "欠", "舍", "皮", "莠", "怠",
    "卑", "丘", "熟", "骂", "币", "扁", "麝", "你", "浴", "柬", "甸", "茫", "姊", "薪", "憾", "赌",
    "熬", "牒", "俑", "恅", "厌", "练", "彰", "绯", "跌", "闭", "阿", "纪", "歧", "修", "荪", "蹬",
    "殇", "诸", "培", "缈", "呯", "似", "腑", "棺", "曹", "算", "榨", "耸", "樂", "骄", "湛", "衡",
    "寡", "菘", "馄", "嗅", "俩", "续", "亻", "近", "十", "葱", "鸷", "礴", "骀", "怪", "逖", "彼",
    "帅", "坪", "爨", "嫡", "捱", "扣", "嗑", "踩", "熊", "葳", "店", "键", "僮", "舳", "孕", "轶",
    "吵", "顺", "仪", "玑", "同", "跃", "崤", "割", "倡", "乓", "肯", "寨", "砸", "濯", "楮", "蕊",
    "郦", "买", "籁", "帕", "术", "策", "性", "蛆", "腆", "拳", "瞪", "匣", "改", "敏", "涸", "爸",
    "夕", "袁", "枧", "藩", "诬", "職", "干", "o", ",", "鼻", "谪", "畦", "进", "祟", "邀", "蜞",
    "烆", "缅", "啻", "吱", "韵", "绎", "泠", "楔", "爰", "忙", "锟", "瞿", "柢", "谀", "铅", "跳",
    "元", "鋫", "襙", "爡", "祺", "醛", "篦", "竴", "羚", "籽", "覆", "楠", "钵", "痕", "靖", "赖",
    "骡", "顇", "噜", "浊", "窄", "蜷", "村", "知", "炖", "变", "钽", "炳", "辫", "恕", "奥", "爱",
    "瘪", "唾", "萝", "轧", "筣", "锗", "风", "2", "谔", "敓", "铄", "钒", "莛", "撂", "姐", "峭",
    "穈", "裾", "鹬", "桶", "遄", "育", "當", "马", "斜", "更", "愦", "辐", "稲", "膏", "弓", "偆",
    "w", "苶", "恐", "送", "淄", "裱", "凍", "铢", "苋", "嘱", "萨", "轹", "佐", "黄", "谋", "迅",
    "撞", "牖", "博", "魏", "尧", "派", "涑", "镏", "条", "餐", "击", "剐", "踯", "喜", "麸", "诨",
    "侄", "釘", "蜇", "采", "他", "谟", "蔓", "昼", "仃", "䨱", "纬", "井", "攒", "炅", "舖", "明",
    "病", "港", "婢", "逐", "瀛", "牗", "按", "砘", "瑙", "嫦", "覃", "咦", "挹", "谲", "侈", "跎",
    "辟", "釉", "唉", "位", "叮", "馥", "撺", "鳄", "陶", "纲", "杏", "骈", "驰", "笙", "原", "氩",
    "癖", "错", "唢", "骏", "著", "邹", "状", "皂", "呈", "取", "深", "泔", "雕", "嚣", "茴", "己",
    "范", "挚", "夤", "又", "鲎", "桑", "飧", "睢", "驼", "巷", "力", "岂", "镁", "奉", "黥", "雠",
    "沙", "箱", "宕", "润", "秕", "春", "队", "容", "咆", "瞥", "铲", "王", "野", "汆", "侞", "武",
    "夸", "护", "铰", "畸", "胺", "尕", "缀", "记", "唱", "锰", "笤", "绚", "啮", "遁", "聆", "扈",
    "然", "痔", "秷", "挡", "枋", "殴", "海", "矜", "荤", "醍", "翡", "筵", "枢", "皖", "嫫", "处",
    "陀", "竖", "稀", "霹", "摸", "侬", "零", "傲", "谖", "挣", "癌", "幡", "粲", "趁", "歹", "伙",
    "摔", "涵", "笞", "舻", "蓼", "琉", "谓", "呻", "桥", "汽", "渑", "烔", "郰", "锣", "婶", "璇",
    "田", "苡", "诜", "渣", "偬", "袖", "勤", "弩", "踔", "捉", "桧", "许", "腔", "尉", "赃", "嚒",
    "妃", "跟", "婿", "盔", "阔", "害", "宿", "诒", "盛", "宰", "㺃", "整", "绌", "铬", "蛳", "悲",
    "异", "秀", "锷", "菰", "束", "锉", "贞", "钡", "谕", "嗦", "旎", "娃", "鱾", "腹", "葡", "疚",
    "麈", "笼", "看", "姹", "恭", "颤", "觥", "季", "仁", "驹", "乇", "实", "童", "仑", "煽", "榆",
    "蟒", "盐", "妹", "噙", "亚", "路", "幂", "赧", "贴", "冻", "救", "槊", "蒡", "屿", "迳", "桹",
    "幽", "综", "莆", "境", "髂", "彗", "怔", "豚", "炝", "啪", "刿", "孺", "榇", "绸", "倦", "酰",
    "姓", "菏", "淳", "晓", "唝", "鞭", "搁", "枸", "窨", "组", "衉", "敌", "乞", "湿", "掸", "郎",
    "罐", "叱", "府", "妓", "璧", "暂", "勉", "盾", "骣", "铱", "娄", "竣", "议", "禅", "亿", "菩",
    "缧", "志", "魉", "侧", "询", "邵", "健", "忪", "婄", "阵", "娴", "茠", "錎", "嘶", "搀", "萃",
    "约", "郴", "狐", "蒌", "参", "惚", "命", "折", "嫂", "鬃", "朝", "k", "坨", "懊", "袷", "糺",
    "爪", "喃", "話", "咳", "豁", "亩", "寝", "削", "报", "狭", "谮", "候", "啤", "垦", "讴", "唯",
    "巫", "亁", "向", "沥", "频", "楡", "谐", "沆", "阎", "恫", "徽", "腥", "陷", "棒", "垃", "抠",
    "吭", "妮", "各", "飒", "鲨", "洞", "瀚", "目", "米", "幸", "聂", "平", "酿", "绥", "墅", "u",
    "规", "龟", "桩", "彭", "犿", "滞", "揽", "營", "拿", "翩", "掺", "喊", "莞", "芭", "油", "榻",
    "呑", "提", "瓮", "糯", "鸟", "秆", "舟", "碧", "氢", "象", "钏", "贺", "闲", "疽", "光", "狯",
    "鸽", "无", "缚", "薇", "讣", "惺", "務", "筚", "捣", "舫", "绽", "栎", "逻", "矢", "嚓", "徐",
    "茉", "霄", "核", "琴", "尘", "株", "烬", "嗡", "搓", "攸", "颊", "馓", "赂", "唤", "牺", "堵",
    "倭", "功", "娘", "渲", "客", "裁", "谙", "说", "尹", "杂", "贸", "基", "転", "虼", "个", "鲤",
    "匀", "辈", "砺", "齿", "醚", "怩", "闻", "盲", "塘", "赜", "扮", "售", "笏", "褒", "羹", "署",
    "月", "醯", "芋", "械", "之", "现", "印", "疲", "儒", "谡", "膳", "叙", "蹴", "食", "擢", "使",
    "悉", "鸦", "笔", "暮", "箔", "瞩", "寮", "杷", "立", "淸", "箧", "惹", "嗣", "什", "猿", "萍",
    "鈉", "鹏", "殿", "傣", "羊", "秧", "仟", "射", "鳌", "称", "钺", "融", "汾", "匮", "沸", "舜",
    "熏", "婀", "哟", "躞", "司", "答", "亥", "猬", "也", "启", "赐", "被", "急", "囵", "枘", "陒",
    "肤", "弯", "航", "脸", "徒", "烫", "渊", "庒", "挥", "国", "责", "雯", "枪", "悦", "戈", "徝",
    "达", "貊", "票", "嚷", "衽", "頭", "阁", "蠖", "佰", "荽", "堰", "爽", "短", "氽", "调", "础",
    "股", "於", "麟", "芊", "鲈", "宝", "满", "铛", "焉", "页", "梭", "估", "扪", "烹", "贮", "宇",
    "开", "竭", "悠", "變", "蹈", "柯", "嚼", "竟", "骤", "镳", "荐", "场", "拜", "虻", "蚀", "讯",
    "皋", "淅", "觉", "鹰", "禧", "滓", "厝", "制", "请", "抡", "恣", "笱", "忧", "耕", "伍", "番",
    "所", "钻", "䀲", "倪", "嶓", "臆", "鸳", "栩", "埗", "畏", "郂", "哫", "鲇", "防", "毳", "揭",
    "迸", "糧", "掎", "俞", "眉", "棱", "筇", "河", "蜡", "媄", "闳", "谊", "蔫", "筐", "搅", "橡",
    "翌", "肌", "郡", "犄", "喹", "炒", "鳎", "狰", "逢", "侦", "弈", "身", "饕", "鏂", "滁", "眨",
    "撵", "泽", "哭", "骆", "卸", "霖", "衷", "跷", "茁", "醐", "磬", "胬", "岩", "狠", "扑", "危",
    "喋", "逊", "偷", "禺", "隋", "茨", "袪", "辛", "鸵", "橄", "霓", "檗", "鲫", "冢", "糥", "捺",
    "锵", "玲", "條", "瘴", "详", "褛", "恳", "靛", "谤", "睿", "臼", "蔡", "杉", "烊", "刮", "媪",
    "唇", "娩", "勇", "有", "呲", "瀹", "损", "蹉", "歆", "呗", "作", "决", "痛", "研", "香", "坡",
    "槑", "扒", "铣", "晶", "而", "傀", "菀", "践", "完", "霆", "带", "肪", "纤", "磊", "谱", "冉",
    "肼", "告", "囚", "燕", "败", "住", "谰", "牲", "砾", "焯", "祠", "煸", "捌", "返", "菌", "苫",
    "蒜", "剿", "软", "鳊", "乒", "亨", "椠", "踵", "盟", "丧", "免", "拂", "沈", "悄", "牙", "戾",
    "隗", "钢", "灸", "氟", "祜", "徙", "馁", "叫", "梻", "抓", "婺", "襟", "渐", "铩", "抺", "昨",
    "轫", "禾", "褴", "冼", "卞", "曦", "稚", "流", "轴", "桷", "污", "矽", "晨", "年", "讥", "巢",
    "苇", "瞰", "谠", "睛", "裹", "皑", "慑", "暽", "潤", "缓", "黛", "囤", "抬", "瞠", "冥", "毯",
    "除", "阴", "消", "芷", "傅", "肋", "属", "戏", "瞄", "勻", "往", "硐", "握", "姝", "直", "阻",
    "台", "梨", "蓝", "摧", "填", "析", "哩", "边", "扬", "馬", "牵", "恪", "篓", "抱", "吃", "蕴",
    "猴", "秘", "假", "游", "灰", "梧", "慗", "脽", "天", "凿", "艇", "奈", "怖", "蝉", "涴", "跑",
    "屯", "嘛", "蔽", "哉", "榦", "馏", "曆", "宜", "镞", "胀", "荙", "忿", "泍", "嫩", "莎", "量",
    "汝", "扫", "乎", "表", "鬟", "吞", "纶", "刺", "渍", "鲠", "柒", "俐", "滌", "圪", "尖", "尓",
    "蝢", "邮", "捂", "于", "罪", "荣", "遣", "擗", "伛", "烙", "碌", "哄", "类", "毂", "蹯", "偶",
    "舐", "旺", "砑", "骇", "写", "守", "憎", "别", "碲", "跬", "鼷", "卿", "僻", "醪", "愚", "搞",
    "雜", "仙", "凝", "赴", "蛰", "膂", "窝", "室", "庋", "导", "迢", "蜂", "伐", "谧", "藻", "巨",
    "汛", "缴", "豢", "萘", "茧", "亞", "桔", "部", "蔻", "歉", "效", "抍", "片", "转", "停", "苍",
    "淹", "温", "胖", "阑", "衰", "拉", "烃", "锅", "粳", "掣", "極", "重", "匍", "憩", "侠", "胜",
    "苗", "馔", "聱", "渫", "罡", "肊", "辑", "t", "黑", "愛", "姣", "荠", "辨", "舛", "玟", "顷",
    "噪", "祥", "茌", "些", "痳", "军", "璞", "胥", "噤", "质", "赍", "溴", "枵", "正", "讽", "胤",
    "庙", "律", "熨", "魄", "祷", "芳", "妒", "锐", "代", "罅", "雹", "炯", "諾", "寓", "娥", "殉",
    "艿", "唐", "膺", "粒", "箍", "泳", "邈", "仞", "汐", "莱", "柫", "词", "弧", "玷", "昔", "缝",
    "咸", "㭗", "怦", "演", "姨", "寳", "圃", "奍", "绫", "添", "庭", "逹", "生", "埔", "细", "听",
    "席", "疤", "玛", "御", "让", "哪", "弼", "纩", "鹗", "泊", "浒", "滔", "衲", "黜", "纯", "凯",
    "甍", "涨", "珑", "擒", "瞟", "穗", "+", "疼", "轩", "八", "我", "沦", "咄", "東", "膲", "鼐",
    "惝", "伤", "课", "注", "逗", "砒", "钥", "醴", "窠", "电", "管", "邱", "涕", "彦", "痒", "崎",
    "沃", "扦", "硕", "咪", "昏", "匈", "俅", "狱", "俺", "邦", "吒", "笨", "啜", "好", "行", "庥",
    "钮", "溲", "述", "梢", "裼", "搦", "撩", "柞", "凡", "髻", "驴", "名", "档", "针", "轲", "俎",
    "點", "钉", "障", "酝", "泮", "盯", "鸿", "饵", "掉", "探", "撰", "穝", "步", "粤", "浆", "就",
    "惘", "闽", "型", "舒", "捃", "恍", "袅", "津", "叩", "远", "煲", "圻", "穑", "习", "涠", "晖",
    "扶", "悃", "赎", "谁", "抽", "泰", "特", "椟", "煮", "濒", "菑", "窗", "寻", "翘", "浮", "歌",
    "迎", "适", "阉", "裘", "殻", "倨", "铜", "欺", "亦", "莸", "婤", "晌", "中", "拷", "説", "诚",
    "窥", "定", "烟", "颖", "叶", "人", "酷", "借", "嗄", "疣", "倩", "讫", "众", "怙", "稱", "皎",
    "训", "徜", "裙", "痉", "违", "奴", "孜", "砍", "歩", "执", "并", "貉", "秩", "粪", "蚓", "簧",
    "姿", "證", "冰", "泣", "硬", "硅", "必", "艄", "校", "仓", "辽", "傈", "愉", "集", "通", "臃",
    "寸", "戟", "椎", "躲", "倆", "煦", "震", "诺", "待", "庶", "屏", "肃", "藿", "腊", "究", "颧",
    "替", "e", "标", "息", "惑", "埙", "以", "盂", "强", "闾", "虑", "钠", "镂", "豉", "邯", "妩",
    "级", "鄉", "汜", "乘", "已", "薛", "芮", "皆", "种", "瓢", "孃", "格", "勒", "黩", "模", "诔",
    "禢", "逞", "卢", "霭", "煤", "魃", "止", "鉫", "楼", "羡", "惊", "蹀", "蹶", "倒", "箅", "龃",
    "思", "泗", "偾", "曲", "较", "濡", "辜", "舆", "诟", "卖", "仰", "虱", "手", "坎", "芥", "乏",
    "夯", "柘", "泾", "烈", "荟", "拾", "案", "虺", "棼", "蚵", "观", "芡", "跗", "谫", "桨", "敝",
    "欧", "诡", "蔗", "凋", "鞠", "隆", "弦", "首", "发", "磕", "刳", "盒", "掏", "委", "赤", "曷",
    "劲", "翔", "纺", "楷", "鳖", "胎", "真", "篆", "桀", "漱", "云", "琼", "造", "舅", "僡", "漠",
    "谈", "晰", "径", "活", "煎", "且", "膛", "绾", "依", "耀", "镯", "库", "峇", "镭", "玦", "炗",
    "札", "濮", "蓑", "卜", "饪", "葉", "桉", "掴", "姜", "鹊", "毁", "茵", "贷", "廊", "沂", "钳",
    "樱", "典", "师", "床", "谵", "擎", "订", "镬", "鬲", "硎", "诧", "着"]

    def to_numpy(self, tensor):
        return tensor.detach().cpu().numpy() if tensor.requires_grad else tensor.cpu().numpy()

    def classification(self, img: bytes):
        image = Image.open(io.BytesIO(img))
        image = image.resize((int(image.size[0] * (64 / image.size[1])), 64), Image.ANTIALIAS).convert('L')
        totensor = torchvision.transforms.ToTensor()
        normalize = torchvision.transforms.Normalize((0.5), (0.5))
        image = totensor(image)
        image = normalize(image)
        ort_inputs = {'input1': np.array([self.to_numpy(image)])}
        ort_outs = self.ort_session.run(None, ort_inputs)
        result = []
        last_item = 0
        for item in ort_outs[0][0]:
            if item == last_item:
                continue
            else:
                last_item = item
            if item != 0:
                result.append(self.charset[item])

        return result


server = Server()


@app.route('/api', methods=['POST'])
def api():
    img = request.files.get('image').read()
    r = server.classification(img)
    return ''.join(r)

if __name__ == '__main__':
    app.run(host="0.0.0.0", port=9898)
